<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script src="../react18/react.development.js"></script>
    <script src="../react18/react-dom.development.js"></script>
    <script src="../react18/babel.min.js"></script>
  </head>
  <body>
    <div id="app"></div>
    <script type="text/babel">
      /* 
      组件的refs属性:
        * react提供了一种方式，允许我们访问 DOM 节点或在 子组件。
        * 如果ref属性设置在了DOM节点上,则我们获取的是 这个真实DOM
        * 如果ref属性设置在了子组件上,则我们获取的是当前子组件的组件实例
        * 我们可以在组件实例上通过refs属性 获取到所有的通过ref获取的内容
    */
      class Child extends React.Component {
        state = {
          a: 1,
        };
        render() {
          return <h1>hello Child</h1>;
        }
      }
      class App extends React.Component {
        render() {
          return (
            <div>
              <input type="text" ref="iptEle" placeholder="123" />
              <Child ref="childComp" />
              <button onClick={this.getValue}>点我打印输入框的内容 </button>
            </div>
          );
        }
        getValue = () => {
          console.log(this);
          console.log(this.refs.iptEle.value);
        };
      }
      ReactDOM.createRoot(document.getElementById("app")).render(<App />);
    </script>
  </body>
</html>
